﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using Common.DTO;
using LogicLayer;

namespace ImmoralServices
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IGameService
    {
        public Boolean CreateGamesession(int playerId, int gameId, int rounds);

        public Boolean DeleteGameSession(int sessionId);

        public Boolean DeletePlayerSession(int playerId, int sessionId);

        public Boolean UpdateGameRounds(int id, int rounds);

        public List<GameSession> GetGameSession(string namn);

        public List<Game> GetGame();

        public Boolean AddPlayerSession(int playerId, int sessionId);

        public List<GameSession> GetAllActiveGameSessions();

        public bool MakePlayerChoice(int gameSessionId, int playerId, int playerChoiceId);

        public bool CheckOpponentStatus_dummy(int playerId, int gameSessionId);

        public GameInfo CheckIfGameRoundIsFinished_dummy(int gameSessionId);

        public Player GetSessionsWinner(int gameSessionId);

        public List<GameSession> GetPlayersGameSessions(int playerID);

        public List<GameSession> GetJoinableGameSessions(int gameID, int playerId);
    }
}
